package com.jming.jike.util;

import java.util.Random;

/**
 * 随机生成验证码工具类
 *
 * @author jinming.zhang
 */
public class ValidateCodeUtils {

    /**
     * 随机生成指定长度的验证码
     *
     * @param length 指定长度 最小1位数 最大10位数
     * @return
     */
    public static Integer generateValidateCode(int length) {

        if (length < 1 || length > 10) {
            throw new RuntimeException("生成验证码长度错误!");
        }

        // 随机生成指定长度的验证码
        int code = new Random().nextInt((int) Math.pow(10, length) - 1);
        // 最小值
        int minCode = (int) Math.pow(10, length - 1);

        // 如果验证码小于最小值 则返回两个数字相加 保证长度足够
        return code < minCode ? code + minCode : code;
    }

    /**
     * 随机生成指定长度字符串验证码
     *
     * @param length 长度
     * @return
     */
    public static String generateValidateCode4String(int length) {

        return Integer.toHexString(new Random().nextInt()).substring(0, length);
    }

}
